package vwg.na.vwm.rh.motorsdk.modelo.procesos.daoimpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import vwg.na.vwm.rh.motorsdk.modelo.procesos.IdeaProceso;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.IdeIdeaAutosDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.IdeAuto;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.IdeIdeaAutos;
import vwg.na.vwm.rh.rhmotor.modelo.dao.GenericDAO;

@Repository
public class IdeIdeaAutosDAOImpl extends GenericDAO<IdeIdeaAutos> implements
	IdeIdeaAutosDAO {

    @SuppressWarnings("unchecked")
    @Override
    @Transactional(readOnly = true, propagation = Propagation.REQUIRED)
    public List<IdeIdeaAutos> getAutosByIdea(IdeaProceso ideaProceso) {
	return getHibernateTemplate().find("FROM IdeIdeaAutos as i "
		+ "LEFT JOIN FETCH i.ideAuto as auto "
		+ "WHERE i.ideaProceso = ?", ideaProceso);
    }

    @SuppressWarnings("unchecked")
    @Override
    @Transactional(readOnly = true, propagation = Propagation.REQUIRED)
    public List<IdeIdeaAutos> getRecordByIdeaAndAuto(IdeaProceso ideaProceso,
	    IdeAuto auto) {
	return getHibernateTemplate().find(
		"FROM IdeIdeaAutos as i "
			+ "WHERE i.ideAuto = ? and i.ideaProceso = ?", auto,ideaProceso);
    }

}
